package com.ruoyi.system.service;

import com.ruoyi.system.domain.dto.QuaStatisticsDto;
import com.ruoyi.system.domain.vo.QuaStatisticsVo;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.List;

public interface QuaStatisticsService {

    List<QuaStatisticsVo.JmrsResult> queryJmrs(QuaStatisticsDto.QueryPatient dto) throws ParseException;

    /**
     * DNT统计
     * @param amsHomeDto
     * @return
     * @throws ParseException
     */
    List<QuaStatisticsVo.DntResult> queryDntResult(QuaStatisticsDto.QueryZhibiao amsHomeDto) throws ParseException;

    /**
     * 查询溶栓并发症发生率
     * @param amsHomeDto
     * @return
     */
    List<QuaStatisticsVo.BfzResultVo> querySichResult(QuaStatisticsDto.QueryPatient amsHomeDto) throws ParseException;

    List<QuaStatisticsVo.DptResult> queryDptResult(QuaStatisticsDto.QueryZhibiao amsHomeDto) throws ParseException;

    List<QuaStatisticsVo.RptResult> queryRptResult(QuaStatisticsDto.QueryZhibiao amsHomeDto) throws ParseException;

    List<QuaStatisticsVo.XgzlLvResult> queryXgzlLv(QuaStatisticsDto.QueryPatient amsHomeDto) throws ParseException;

    List<QuaStatisticsVo.NcxResult> queryNcxLv(QuaStatisticsDto.QueryPatient amsHomeDto) throws ParseException;

    QuaStatisticsVo.QsfxResult queryQsfx(QuaStatisticsDto.Query dto) throws ParseException;

    /**
     * 急性脑出血患者严重程度评估率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryjxncxhzyzcdpg(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 急性脑出血患者康复治疗率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryJxncxhzkfzll(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 急性脑出血患者发病6 h内降压药物治疗率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryjxncxhzfbjyywzll(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     *    脑出血患者住院7 d内潜在病因筛查率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryncxhzzyqzbyscl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 抗凝相关脑出血患者抗凝逆转治疗率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryKnxgncxhzknnzzll(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     *  急性脑出血患者卒中相关肺炎筛查率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryjxncxhzczxgfyscl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 脑出血患者发病24 h内复查头颅CT等影像学检查率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryNcxhzfctlctjcl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 合并高血压的脑出血患者出院时降压药物治疗率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryHbgxyjyywzll(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     *  脑出血患者入院48 h内深静脉血栓预防率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryNcxsjmxsyfl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 急性脑出血患者住院病死率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryJxncxzybsl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 脑出血患者吞咽功能筛查率
     * @param amsHomeDto
     * @return
     */
    BigDecimal queryNcxhztygnscl(List<QuaStatisticsVo.NcxLvList> list, QuaStatisticsDto.QueryPatient amsHomeDto);

    QuaStatisticsVo.NcxLvResult queryNcx(QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * 脑梗死统计
     * @param amsHomeDto
     * @return
     */
    QuaStatisticsVo.NgsReslut queryNgs(QuaStatisticsDto.QueryPatient amsHomeDto);

    /**
     * ONT查询
     * @param amsHomeDto
     * @return
     */
    List<QuaStatisticsVo.OntReslut> queryOnt(QuaStatisticsDto.QueryZhibiao amsHomeDto);

    /**
     * ONT查询
     * @param amsHomeDto
     * @return
     */
    List<QuaStatisticsVo.OntReslut> queryDpt(QuaStatisticsDto.QueryZhibiao amsHomeDto);

    /**
     * ONT查询
     * @param amsHomeDto
     * @return
     */
    List<QuaStatisticsVo.OptReslut> queryOpt(QuaStatisticsDto.QueryZhibiao amsHomeDto);

    /**
     * ONT查询
     * @param amsHomeDto
     * @return
     */
    List<QuaStatisticsVo.DntResult> queryDnt(QuaStatisticsDto.QueryZhibiao amsHomeDto);

}
